<?php 
/**
 * VFoto.php
 * 
 * @package View
 *
 */
/**
 * VFoto
 * @author mw
 * @package View
 *
 */
class VFoto extends VView {
	/**
	 * Costruttore
	 */
	public function __construct() {
		parent::__construct();
	}
	/**
	 * upload
	 * 
	 * Pagina per il caricamento di una foto
	 */
	public function upload() {
		$this->setPage('foto/upload.tpl');
		$this->display();
	}
	/**
	 * cancellafoto
	 */
	public function cancellafoto() {
		$this->setPage('foto/cancellafoto.tpl');
		$this->display();
	}
	/**
	 * viewFoto
	 * @param array $ents
	 */
	public function viewFoto($ents){
		$this->assign('foto',$ents);
		$this->assign('pathopt',OPTIMIZED_IMAGE_PATH);
		$this->setPage('foto/displayfoto.tpl');
		$this->display();
	}
	/**
	 * viewFotoRaw
	 * @param array $ents
	 */
	public function viewFotoRaw($ents){
		$this->assign('foto',$ents);
		$this->assign('pathraw',RAW_IMAGE_PATH);
		$this->setPage('foto/displayfotoraw.tpl');
		$this->display();
	}
	/**
	 * viewFotoTh
	 * @param array $ents
	 */
	public function viewFotoTh($ents){
		$this->assign('foto',$ents);
		$this->assign('pathth',THUMB_IMAGE_PATH);
		$this->setPage('foto/displayfotothumb.tpl');
		$this->display();
	}
	/**
	 * galleries
	 * 
	 * Stampa a schermo tutte le gallery dell'utente
	 * @param array $galleries
	 * @param boolean $owner se e' il proprietario o no
	 */
	public function viewFotoUtente($foto,$owner){
		$this->assign('foto',$foto);
		$this->assign('owner',$owner);
		$this->setPage('foto/displayfotoutente.tpl');
		$this->display();
		
	}
	/**
	 * getUtente
	 * 
	 * @return mixed
	 */
	public function getUtente(){
		if(!isset($_REQUEST['username'])){
			return false;
		}
		return $_REQUEST['username'];
	}
	/**
	 * getCommentoUtente
	 * @return mixed $commento
	 */
	public function getCommento() {
		if(!isset($_REQUEST['commento'])){
			return false;
		}
		
		return $_REQUEST['commento'];
	}
	/**
	 * getVoto
	 * @return mixed
	 */	
	public function getVoto() {
		$dati_richiesti=array('idfoto','voto');
        $dati=array();
        foreach ($dati_richiesti as $dato) {
            if (isset($_REQUEST[$dato])){
                $dati[$dato]=$_REQUEST[$dato];
            }else{
            	return false;
            }
        }
        return $dati;
	}
	/**
	 * getLike
	 * @return mixed
	 */
	public function getLike() {
		$dati_richiesti=array('idfoto','like');
        $dati=array();
        foreach ($dati_richiesti as $dato) {
            if (isset($_REQUEST[$dato])){
                $dati[$dato]=$_REQUEST[$dato];
            }else{
            	return false;
            }
        }
        return $dati;
	}	
	/**
	 * getIdFoto
	 * @return mixed
	 */
	public function getIdFoto(){
		if(!isset($_REQUEST['id'])){
			return false;
		}
		return $_REQUEST['id'];
	}
	/**
	 * getNomeFoto
	 * @return mixed
	 */
	public function getNomeFoto(){
		if(!isset($_REQUEST['nome'])){
			return false;
		}
		return $_REQUEST['nome'];
	}	
	/**
	 * getDescrizioneFoto
	 * @return mixed
	 */
	public function getDescrizioneFoto(){
		if(!isset($_REQUEST['descrizione'])){
			return false;
		}
		return $_REQUEST['descrizione'];
	}
	/**
	 * getFoto
	 * @return mixed
	 */
	public function getFoto() {
		//TODO:Alcune azioni vanno fatte nel controller
		$tmp_name = $_FILES["immagine"]["tmp_name"];
		$name = $_FILES['immagine']['name'];
		$name = strtolower($name);
		if ($tmp_name==NULL) return NULL;
		
		//check tipo file e dimensione max
		$file_check = basename($name);
  		$ext = substr($file_check, strrpos($file_check, '.') + 1);
  		
  		if ($ext != "jpg" && $ext != "jpeg" && $ext != "gif" && $ext != "png" && $ext != "JPG" && $ext != "JPEG" && $ext != "GIF" && $ext != "PNG") {
			return -1;
  		}  
  		
  		//NON FUNZIONA, DA SOSTITUIRE COL MIME TYPE, VARIA DA VERSIONE A VERSIONE DI PHP, E' OS DEPENDENT, UN GIORNO, PRIMA O POI
		if ($_FILES["immagine"]["type"] != "image/jpeg" && $_FILES["immagine"]["type"] != "image/gif" && $_FILES["immagine"]["type"] != "image/png") {
			return -2;
  		} 
  		if ($_FILES["immagine"]["size"] > MAX_FILE_SIZE) {
			return -3;
		}
		$data = date('j-m-y_h-i-s');
		$nuovo_file = "{$data}_{$name}";
		//check lunghezza nome, se troppo lunga, tronca
		if (strlen($nuovo_file) > 100) {
			$rnd=mt_rand();
			$nuovo_file=substr($nuovo_file, 0, 90);
			$nuovo_file="{$nuovo_file}_{$rnd}.${ext}";
		}
		else {
			$rnd=mt_rand();
			$nuovo_file="{$nuovo_file}_{$rnd}.${ext}";	
		}
		move_uploaded_file($tmp_name, RAW_IMAGE_PATH.$nuovo_file);
		return $nuovo_file;
	}
}